package com.briup.day05;

/**
 * @author lining
 * @date 2024/1/12 9:08
 */
public class Test {
    public static void main(String[] args) {
        //数组 args 数组类型的形式局部变量
        System.out.println(args);
        //写法： 定义一个数组类型变量   类型+[] 定义数组
        int[] a = new int[3]; // 默认值值0
        char[] b = new char[3]; //
        System.out.println(b[0]); //默认值 0 对应的字符信息NUL
        double[] c = new double[3];//0.0
        String[] d = new String[3];// （引用类型）默认值：null
        String s = null;
        //栈中开辟内存空间 a2 不指向任何堆空间
        int[] a2 = null;
        a2 = new int[5];
        System.out.println(d[3-1]);
        int[][] e;
        //赋值 （指向了一个开辟堆的连续内存空间，长度为3）
        int[] arr = new int[3];
        //调用数组一个属性（一个组成部分）
        System.out.println(arr.length); //数组长度
        //下标值 获取每个元素的信息
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        //数组的定义，赋值操作
        int[] arr2 = {1,2,3,4};
        //内存角度：区别是什么？arr arr2 表示2个不同位置的内存空间

        /*
            打印一个数组对象的字符串信息
            规则：    对象的类型@16进制数(根据对象在堆地址值转换)
            [I@4554617c
            [I@74a14482
         */

        System.out.println(arr);
        System.out.println(arr2);
        System.out.println(c);
        //到arr变量存储地址值对应数组对象中获取第一个元素
        System.out.println(arr[0]);
        //创建数组后，改变每个元素值
        arr[0] = 1;
        arr[1] = 1;
        arr[2] = 1;
        //遍历数组，for i表示下标值
        for (int i = 0; i < arr.length; i++) { // 0  1 2
            System.out.println("每个元素："+arr[i]);
        }
    }
}
